//
//  main.m
//  OC7_Block课后作业
//
//  Created by dllo on 15/11/3.
//  Copyright (c) 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    // 1,定义一个block，返回值为BOOL，有两个NSString参数。实现：判断字符串是否相等。
//    BOOL (^block1) (NSString *, NSString *) = ^(NSString *a, NSString *b) {
//        if ([a isEqualToString:b]) {
//            return YES;
//        }
//        return NO;
//    };
//    
//    NSInteger i = block1(@"a", @"a");
//    NSLog(@"%ld", i);
    
    
    // 2 定义一个block，返回值为NSInteger，有两个参数，一个是NSArray，一个是NSString。实现：判断数组时候包含此字符串，如果包含，返回字符串的下标，如果不包括，返回-1。
    
//    NSInteger (^block2) (NSArray *, NSString *) = ^(NSArray *arr, NSString *str){
//        for (NSInteger i = 0; i < arr.count; i++) {
//            if ([[arr objectAtIndex:i] isEqualToString:str]) {
//                return i;
//            } else {
//                continue;
//            }
//        }
//        return (NSInteger)-1;
//    };
//    
//    // 调用
//    NSArray *a = [[NSArray alloc] initWithObjects:@"asdf", @"qwerqwer", @"qhweiurh", @"yyy", @"iiii", nil];
//    NSString *b = @"asd";
//    NSInteger ret = block2(a, b);
//    NSLog(@"%ld", ret);
    
    
    // 3创建一个数组，初始化为@“123",@"21",@"33",@"69", @“108”, @“256”。使用Block语法，进行数组的排序。并输出内容。
//    排序结果：108  123   21   256   33   69
//    
//    提示：sortedArrayWithOptions:usingComparator:
    
    
    NSArray *arr = [[NSArray alloc] initWithObjects:@"123", @"21", @"33", @"69", @"108", @"256", nil];
 NSArray *arr1 = [arr sortedArrayWithOptions:NSSortConcurrent usingComparator:^NSComparisonResult(id obj1, id obj2) {
    NSString *s1 = (NSString *)obj1;
    NSString *s2 = (NSString *)obj2;
    return [s1 compare:s2];
}];

    for (NSString *str in arr1) {
        NSLog(@"%@", str);
    }
    
    
    
    
    return 0;
}
